package com.redis.arresting.hook.springconf;

import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@Component("slaveDataSource")
public class DynamicDataSource {

    private Map<Object, Object> targetDataSources = new ConcurrentHashMap<>();

    private static ApplicationContext ctx;

//    @Override
//    protected Object determineCurrentLookupKey() {
//
//        return "dataSource2";
//    }

//    @Override
//    public void afterPropertiesSet(){
//
//        logger.info("Init MutiDataSource start...");
//        try {
//            initailizeMutiDataSource();
//        } catch (Exception e) {
//            logger.error("Init MutiDataSource error...", e);
//        }
//        logger.info("Init MutiDataSource end...");
//
//        super.afterPropertiesSet();
//
//    }
//
//    private void initailizeMutiDataSource() {
//
//        targetDataSources.put("dataSource1", ctx.getBean("slave_1_DS"));
//        targetDataSources.put("dataSource2", ctx.getBean("slave_2_DS"));
//
//        setTargetDataSources(targetDataSources);
//    }

//    @Override
//    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
//        ctx = applicationContext;
//    }
//
//    @Override
//    public Connection getConnection() throws SQLException {
//        return super.getConnection();
//    }
}

